﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace GN.Pay.TradeChannel.Transfers
{
    /// <summary>
    /// 转账抽象接口
    /// </summary>
    public interface ITransfers : IChannel
    {
        /// <summary>
        /// 转账申请验证
        /// </summary>
        /// <param name="apply">申请</param>
        /// <returns></returns>
        void TransfersApplyValidate(ITransfersApplyInfo apply);

        /// <summary>
        /// 转账申请
        /// </summary>
        /// <param name="apply">申请</param>
        /// <returns></returns>
        ITransfersApplyResult TransfersApply(ITransfersApplyInfo apply);

        /// <summary>
        /// 转账通知
        /// </summary>
        /// <param name="sercice">服务</param>
        /// <param name="message">消息</param>
        void TransfersNotify(ITransfersNotifyService sercice, object message);

        /// <summary>
        /// 转账通知响应
        /// </summary>
        /// <param name="isSuccess">是否成功</param>
        /// <returns></returns>
        string TransfersNotifyResponse(bool isSuccess);
    }
}
